home *** CD-ROM | disk | FTP | other *** search
/ Go64! / Go64_2003-10_2003_CSW_Side_A.d64 / 3d _sdn (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  2KB  |  88 lines

  1. 0 poke53280,0:poke53281,5
  2. 1 px(1)=-1:py(1)=-1:pz(1)=+1
  3. 2 px(2)=+1:py(2)=-1:pz(2)=+1
  4. 3 px(3)=-1:py(3)=+1:pz(3)=+1
  5. 4 px(4)=+1:py(4)=+1:pz(4)=+1
  6. 5 px(5)=-1:py(5)=-1:pz(5)=-1
  7. 6 px(6)=+1:py(6)=-1:pz(6)=-1
  8. 7 px(7)=-1:py(7)=+1:pz(7)=-1
  9. 8 px(8)=+1:py(8)=+1:pz(8)=-1
  10. 9 zm=20:f=1
  11. 40 gosub1000
  12. 50 xa=xa+0.5
  13. 51 ya=ya+0.7
  14. 52 za=za+0.2
  15. 53 f=f+1
  16. 60 goto40
  17. 100 end
  18. 1000 rem-------------------------------
  19. 1001 print"[153]calculating frame";f
  20. 1002 fori=1to8
  21. 1005 x3=px(i):y3=py(i):z3=pz(i)
  22. 1006 gosub3000
  23. 1007 x=x3*zm/(z3+4)+20
  24. 1008 y=y3*zm/(z3+4)+12
  25. 1010 remsp=1524+x+int(y)*40
  26. 1020 rempokesp,42
  27. 1021 xc(i)=x:yc(i)=y
  28. 1030 next
  29. 1032 print"[147]                         ";
  30. 1033 print"[158]displaying frame";f
  31. 1035 gosub5000
  32. 1040 return
  33. 2000 rem-------------------------------
  34. 2001 rx=x*cos(a)+y*cos(a+(NULL)/2)
  35. 2010 ry=x*cos(a+(NULL)/2)+y*cos(a+(NULL))
  36. 2020 return
  37. 3000 rem-------------------------------
  38. 3010 a=xa:x=y3:y=z3:gosub2000
  39. 3020 y3=rx:z3=ry
  40. 3030 a=ya:x=x3:y=z3:gosub2000
  41. 3040 x3=rx:z3=ry
  42. 3050 a=za:x=x3:y=y3:gosub2000
  43. 3060 x3=rx:y3=ry
  44. 3070 return
  45. 4000 rem-------------------------------
  46. 4010 dx=x2-x1:dy=y2-y1
  47. 4020 sp=1024+x1+int(y1)*40
  48. 4030 l=abs(dy):ys=sgn(dy)*40
  49. 4035 ifabs(dx)>abs(dy)then4100
  50. 4040 fori=1tol
  51. 4045 pokesp,42
  52. 4050 sp=sp+ys+dx/(l+0.0001)
  53. 4060 next:return
  54. 4100 l=abs(dx):xs=sgn(dx):yp=0:ys=dy/l
  55. 4110 fori=1tol
  56. 4120 pokesp+int(yp)*40,42
  57. 4130 yp=yp+ys:sp=sp+xs
  58. 4140 next:return
  59. 5000 rem-------------------------------
  60. 5010 x1=xc(1):y1=yc(1)
  61. 5020 x2=xc(2):y2=yc(2) : gosub4000
  62. 5030 x1=xc(3):y1=yc(3)
  63. 5040 x2=xc(4):y2=yc(4) : gosub4000
  64. 5050 x1=xc(1):y1=yc(1)
  65. 5060 x2=xc(3):y2=yc(3) : gosub4000
  66. 5070 x1=xc(2):y1=yc(2)
  67. 5080 x2=xc(4):y2=yc(4) : gosub4000
  68. 5090 rem///
  69. 5110 x1=xc(5):y1=yc(5)
  70. 5120 x2=xc(6):y2=yc(6) : gosub4000
  71. 5130 x1=xc(7):y1=yc(7)
  72. 5140 x2=xc(8):y2=yc(8) : gosub4000
  73. 5150 x1=xc(5):y1=yc(5)
  74. 5160 x2=xc(7):y2=yc(7) : gosub4000
  75. 5170 x1=xc(6):y1=yc(6)
  76. 5180 x2=xc(8):y2=yc(8) : gosub4000
  77. 5190 rem///
  78. 5210 x1=xc(1):y1=yc(1)
  79. 5220 x2=xc(5):y2=yc(5) : gosub4000
  80. 5230 x1=xc(2):y1=yc(2)
  81. 5240 x2=xc(6):y2=yc(6) : gosub4000
  82. 5250 x1=xc(3):y1=yc(3)
  83. 5260 x2=xc(7):y2=yc(7) : gosub4000
  84. 5270 x1=xc(4):y1=yc(4)
  85. 5280 x2=xc(8):y2=yc(8) : gosub4000
  86. 5290 rem///
  87. 5999 return
  88.